package entity

/*
 * A-BMS（Array Battery Manage System）的数据
 */
type ABmsInfo struct {
	VMax                 uint16  /* 单体最大电压, 倍率1000 V*/
	VMin                 uint16  /* 单体最小电压, 倍率1000 V */
	VMaxCellInd          uint16  /* 单体最大电压包内索引 */
	VMinCellInd          uint16  /* 单体最大电压包内索引 */
	VMaxBmuInd           uint16  /* 单体最大电压包索引 */
	VMinBmuInd           uint16  /* 单体最小电压包索引 */
	VMaxBatfInd          uint16  /* 单体最大电压簇索引 */
	VMinBatfInd          uint16  /* 单体最小电压簇索引 */
	TMax                 int16   /* 单体最大温度, 倍率10 */
	TMin                 int16   /* 单体最小温度, 倍率10 */
	TMaxCellInd          uint16  /* 单体最大电压包内索引 */
	TMinCellInd          uint16  /* 单体最小电压包内索引 */
	TMaxBmuInd           uint16  /* 单体最大电压包索引 */
	TMinBmuInd           uint16  /* 单体最小电压包索引 */
	TMaxBatfInd          uint16  /* 单体最大电压簇索引 */
	TMinBatfInd          uint16  /* 单体最小电压簇索引 */
	SocMax               uint16  /* soc最大值,倍率10 */
	SocMin               uint16  /* soc最小值,倍率10 */
	SocMaxInd            uint16  /* soc最大值, 簇索引*/
	SocMinInd            uint16  /* soc最小值, 簇索引*/
	VDif                 uint16  /* 单体最大压差, 倍率1000 */
	TDif                 uint16  /* 单体最大温差, 倍率10 */
	SocDif               uint16  /* soc最大差值,倍率10 */
	RFU1                 uint16  /* 保留，对齐用 */
	SOC                  uint16  /* 电池堆SOC 倍率10 */
	SOH                  uint16  /* 电池堆SOH 倍率10 */
	DOD                  uint16  /* 电池堆DOD 倍率10 */
	VAvg                 uint16  /* 电池堆平均单体电压 倍率1000 V */
	Current              int16   /* 电池堆电流 倍率 10A */
	CurAvg               uint16  /* 合闸的簇的平均电流的绝对值倍率100 A */
	Voltage              uint16  /* 电池堆电压 倍率 10  V*/
	Power                int16   /* 功率kw 倍率1 */
	Power_F32            float32 /* 功率kw 倍率1 */
	ChgState             uint16  /* 充放电状态: 0：静置; 1：充电; 2：放电 */
	ChargeCurMax         uint16  /* 最大允许充电电流 倍率 10 */
	DischargeCurMax      uint16  /* 最大允许放电电流 倍率 10 */
	ChargeVolMax         uint16  /* 最大允许充电限压值 倍率 10 */
	DischargeVolMin      uint16  /* 最小允许放电限压值 倍率 10 */
	LeftEnergy           uint32  /* 可放电量 kwh 倍率1000 */
	UsedEnergy           uint32  /* 可充电量 kwh 倍率1000 */
	InputEnergy          uint32  /* 累计充电电量 倍率100*/
	OutputEnergy         uint32  /* 累计放电电量 倍率100*/
	InputAH              uint32  /* 累计充电AH 0.1AH*/
	OutputAH             uint32  /* 累计放电AH 0.1AH*/
	WarnState            uint32  /* 告警状态字 */
	PrtState             uint32  /* 保护状态字 */
	FaultStatus          uint32  /* 系统故障状态字 0正常  1故障 bit0 温度采样 其他预留*/
	InsulationStatusByBa uint32  /* bams判断的绝缘故障状态字*/
	BalanceEnableState   uint32  /* 堆合算的簇均衡使能状态，一位代表一簇 */
	SysState             uint16  /* BMS系统状态，玉门项目 */
	AvgTemp              int16   /* BMS平均温度，玉门项目 */
	Reserve              uint16  /* 内存对齐，保留 */
	OnNum                uint16  /* batf合闸数量 */
	OnMap                uint32  /* batf合闸映射表 */
	OnlineMap            uint32  /* batf在线表 */
	TempCrolState        uint16  /*储能箱温控系统是否OK*/
	FireState            uint16  /*储能箱的消防情况*/
	BreakValue           uint32
	FaultMap             uint32 /* batf合闸故障映射表 */
	EnableInsuFlag       uint16
	PcsOnline            uint16
	TotalBreakState      uint16
}

/**
A-BMS系统信息
*/
type ABmsZone struct {
	Id             string   /* 节点标识*/
	Nbatc          uint8    /* 堆序号 */
	SysTime        string   /* 时间标识 */
	StartIp        string   /* 节点标识*/
	StartAdr       string   /* 4字IP */
	EndIp          string   /* 节点标识*/
	SysIsolStatus  uint8    /* 系统绝缘状态 */
	BmsIsolStatus  uint8    /* BMS绝缘状态 */
	BatfIsolStatus [8]uint8 /* 电池簇绝缘状态 */
	BatfNum        uint16   /* 电池组数量 */
	RealBatfNum    uint16   /* 实际所接电池组数量 */
	BmuNum         uint16   /* 电池组下BMU数量 */
	CellsNum       uint16   /* BMU下电池数 */
	TempNum        uint16   /* BMU下温度点数 */
	DmuNum         uint16   /* BMS下DMU计数 */
	AcuNum         uint16   /* BMS下DMU计数 */
	RatedAmp       uint16   /* 单簇额定电流,倍率100 */
	RatedVolt      uint16   /* 单体额定电流,倍率1000 */
	Capacity       uint32   /* 额定容量 kwh */
	BatfMap        uint32   /* batf加载map表 */
	RebootFlag     uint8    /* 复位标志 */
	PcsVol         uint16   /* PCS 测量电压 倍率 10 */
	PcsCur         int16    /* PCS 测量电流 倍率 10 */
	PcsMvol        uint16   /* PCS 母线电压 倍率 10 */
	PcsFault       uint32   /* PCS故障码*/
	Status         uint16   /* 装置状态 */
	RFU            uint16   /* 填充预留*/
	Verion         string   /* 版本 */
	ProductName    string   /*产品名称*/
	BmsAAAFlag     uint32   /*紧急情况下设置成AAAA	 0x1234表示需要设置，0x0000表示不需要设置*/
	StandardStep   uint16
	StackNum       uint32
	Info           ABmsInfo /* 堆信息 */
}
